package com.xl.qa.service;

import com.xl.basic.entity.Result;
import com.xl.basic.entity.SPage;
import com.xl.basic.entity.UserInfo;
import com.xl.basic.entity.param.QueryMenuParam;
import com.xl.basic.entity.param.UpdMenuParam;
import com.xl.dao.domain.XlQuestion;
import com.xl.qa.entity.param.AddQuestionParam;
import com.xl.qa.entity.param.QueryQuestionParam;
import com.xl.qa.entity.param.UpdQuestionParam;
import com.xl.qa.entity.result.QuestionDetailsResult;
import jakarta.validation.constraints.NotNull;
import lombok.NonNull;

import java.util.List;

/**
 * @author 钟勇
 * Create in 2024/1/15 15:24
 */
public interface QuestionService {
    /**
     * 添加问卷
     * @param param param
     * @param operator 找找人
     * @return 问卷id
     */
    Result<Integer> addQuestion(@NonNull AddQuestionParam param, UserInfo operator);

    /**
     * 编辑问卷
     * @param param param
     * @param operator 操作人
     * @return result
     */
    Result<Object> updQuestion(@NonNull UpdQuestionParam param, UserInfo operator);

    /**
     * 查询问卷明细
     * @param questionId 问卷ID
     * @return QuestionDetailsResult
     */
    Result<QuestionDetailsResult> getQuestionDetails(@NonNull Integer questionId);

    /**
     * 查询问卷列表
     * @param param param
     * @return list
     */
    Result<List<XlQuestion>> queryQuestionList(@NonNull QueryQuestionParam param);

    /**
     * 查询问卷分页
     * @param param param
     * @param sPage 分页
     * @return page
     */
    Result<List<XlQuestion>> queryQuestionPage(@NonNull QueryQuestionParam param, SPage sPage);
}
